home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
fdimg
/
—‹Œêsrc.lzh
/
mouse.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-04
|
1KB
|
68 lines
#include "3DDEF.H"
#include "GLOBAL.H"
#include "FORWARD.H"
#include "XCODE.H"
#include "doslib.h"
/* 0x210 マウスでカーソル移動 */
void
mouse_cursor()
{
register int x,y;
register int i,b;
x = (y = MS_CURGT()) >> (16+3); /* 横8ドットは変わらず */
y &= 0xffff;
i = 0;
while(y >= YDOT[i]) {
i++;
}
y = i-1;
for(i = 0;i < MAX_WINDOW;i++) {
if (WDATA[i].WX0 >= 0) { /* 有効である */
if ((WDATA[i].WY0 <= y) && (y <= (b = WDATA[i].WY1))) { /* 入った */
line_seigyou();
if (CWN != i) {
window_change(i);
}
if (SCREEN[y] && (SCREEN[y] != TAIL)) {
CL = SCREEN[y];
CY = window_is_this_line_in_current(CL);
/* CY = y - CWY0;*/
line_cl_cl();
work_line_analyze();
CPX = work_CX0_to_CPX(x);
work_cursor_cpx();
CX0 = CX;
}
return;
} else if (y == (b+1)) { /* btm line */
int cwn,y0,yd;
cwn = CWN;
window_change(i);
if ((y+1) == UNDER_Y) { /* 一番下のボトムである */
return;
}
y0 = YDOT[y]; /* btm のYドット座標 */
while(MS_GETDT() & 0b00000000000000001111111100000000) {
/* 左ボタンが押されている間 */
}
yd = (y = MS_CURGT() & 0xffff) - y0;
if (yd < 0) {
yd -= LYW_TOTAL;
}
if (y = yd / LYW_TOTAL) {
ctrl_x_w_sub(CWY1-CWY0+1+y);
/* ctrl_l();*/
/* window_set_current();*/
window_change(cwn);
}
return;
}
}
}
}